package com.simple.question;

import com.fasterxml.jackson.annotation.JsonIgnore;

import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;

//import com.noah.ures.resource.file.entity.Vedio;
//import com.noah.ures.resource.textbook.entity.Edition;
//import com.noah.ures.stat.kpoint.entity.KpointStat;

public class KnowledgePoint extends CommonTree<KnowledgePoint>{

	/** 考点优先级（考频） */
	public static Map<String,Integer> priorityMap = new TreeMap<String,Integer>(){
		private static final long serialVersionUID = 1L;
		{
			put("1",1);//热门
			put("2",2);//必考
			put("3",3);//高频
			put("4",4);//低频
		}
	};
	
	/** 知识点推荐 */
	public static Map<String,Integer> gradeMap = new TreeMap<String,Integer>(){
		private static final long serialVersionUID = 1L;
		{
			//1.精美
			put("1",1);
		}
	};
	
	/** 知识点的三级目录结构(列) */
	public static final List<String> catalogCols = Arrays.asList(new String[] { "C", "D","E"});
	
	
	/** 查询内容类型  */
	public static int CONTENT_TYPE_KPOINT = 1;
	public static int CONTENT_TYPE_SUMMARY = 2;
	public static int CONTENT_TYPE_EXAMPLE = 3;
	public static int CONTENT_TYPE_EXERCISE = 4;
	public static int CONTENT_TYPE_VEDIO = 5;
	public static int CONTENT_TYPE_FLASH = 6;
	
	/** 新增状态 */
	public static final int STATUS_ADD = 1;
	
	/** 修改状态 */
	public static final int STATUS_UPDATE = 2;
	
	/** 删除状态 */
	public static final int STATUS_DELETE = 3;
	
	/** 正常可用的状态  */
	public static final List<Integer> STATUS_AVAILABLE = Arrays.asList(new Integer[]{STATUS_ADD,STATUS_UPDATE});
	
	/**知识点树结构标识--目录*/
	public static final int NODE_TYPE_CATALOG = 1;
	
	/**知识点树结构标识--知识点*/
	public static final int NODE_TYPE_KPOINT = 2;
	
	
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	/** 科目  */
	private int subjectId;
	
	/** 学段  */
	private int phaseId;
	
	/** 考点优先级(考频) */
	private Integer priority;
	
	/** 推荐的知识点等级(知识点推荐) */
	private Integer grade;
	
	/** 导出时对应的列 */
	private int columnId;
	private String columnNo;
	private String columnName;
	
	/** 教学大纲  */
	private String syllabus;
	
	/** 关联教辅ID */
	private long tutorialId;
	
	/** 知识点目录结构ID */
	private long catalogId;
	
	/** 版本 */
	private double version;
	
	/** 状态 */
	private int status;
	
	/**知识点下的视频 */
//	private List<Vedio> vedios;
	
	/** 知识点下面的版本 */
	private List<Edition> editionList;
	
	/** 相关的知识点  */
	private List<KnowledgePoint> relationList;
	
	/** 知识点下的标签 */
	private List<KPointLabel> kPointLabels;
	
	/** 知识点下的文件 */
//	private List<KPointFile> kPointFiles;
	
	/** 知识点下面的分类模块 */
//	private List<KPointModuleStruc> kPointModuleStrucs;
	
	/** 临时变量:页面传入的复选框id(分类模块) */
	private String moduleIds;
	private List<Integer> moduleIdList;
	
	/** 临时变量:知识点关联*/
	private String relation;
	private String relationId;
	
	/** 临时变量:查询条件*/
	private int gradeId;
	private int termId;
	private String gradeTerm;
	
	/** 知识点-教材版本 */
	private String editionName;
	private String edtionIds;
	private List<Integer> edtionIdList;
	private List<KPointEdition> kPointEditionList;
	
	/** 知识点与概述关联的中间表*/
//	private List<KPointQuestion> kPointQuestionlist;		
	
	/** 知识点-概述 */
//	private List<KPointSummary> summaryList;
	
	/** 导出时是否包含知识点层级关系 */
	private boolean isNested = true;
	
	/** 临时查询变量 */
	private String keyword;
	private int contentType;
	private int editionId;
	
	/** 知识点标记字符串 */
	private String labels;
	
	/** R,S列是否有文件 */
	private int fileCount;
	
	private TextbookKpoint textbookKpoint;
	
	/**知识点目录树用到，1表示目录节点，2表示知识点节点*/
	private int nodeType;
	
	/** 2014-05-06 */
	/** 概述归纳点 */
	private String summaryPoints;
	
	/** 常考题型及常考题型百分比  */
	private String commonQTypes;
	
	/** 易错点  */
	private String fallibilitys;
	
	/** 考纲要求 */
	private String syllabusDemand;
	
	/** 知识点的关系 */
	private List<KPointRelationship> relationshipList;
	
	/** 知识点摘要 */
	private String summary;
	private long summaryId;
	
	/** 临时变量：知识点前后置ID */
	private String prevKPoint;
	private String prevKPointId;
	private String nextKPoint;
	private String nextKPointId;
	
//	private KpointStat kpointstat;
	/**推送系统自动推送排序为8的情况，用来区别获取的是视频还是动漫*/
	private Integer mediaType;
	
	public int getSubjectId() {
		return subjectId;
	}

	public void setSubjectId(int subjectId) {
		this.subjectId = subjectId;
	}

	public int getPhaseId() {
		return phaseId;
	}

	public void setPhaseId(int phaseId) {
		this.phaseId = phaseId;
	}

	public Integer getPriority() {
		return priority;
	}

	public void setPriority(Integer priority) {
		this.priority = priority;
	}

	public Integer getGrade() {
		return grade;
	}

	public void setGrade(Integer grade) {
		this.grade = grade;
	}

	public String getSyllabus() {
		return syllabus;
	}

	public void setSyllabus(String syllabus) {
		this.syllabus = syllabus;
	}

	public long getTutorialId() {
		return tutorialId;
	}

	public void setTutorialId(long tutorialId) {
		this.tutorialId = tutorialId;
	}
	
	public long getCatalogId() {
		return catalogId;
	}

	public void setCatalogId(long catalogId) {
		this.catalogId = catalogId;
	}

	public double getVersion() {
		return version;
	}

	public void setVersion(double version) {
		this.version = version;
	}

	public int getStatus() {
		return status;
	}

	public void setStatus(int status) {
		this.status = status;
	}

	public String getModuleIds() {
		return moduleIds;
	}

	public void setModuleIds(String moduleIds) {
		this.moduleIds = moduleIds;
	}

	public List<Integer> getModuleIdList() {
		return moduleIdList;
	}

	public void setModuleIdList(List<Integer> moduleIdList) {
		this.moduleIdList = moduleIdList;
	}
//	@JsonIgnore
//	public List<KPointModuleStruc> getkPointModuleStrucs() {
//		return kPointModuleStrucs;
//	}

//	public void setkPointModuleStrucs(List<KPointModuleStruc> kPointModuleStrucs) {
//		this.kPointModuleStrucs = kPointModuleStrucs;
//	}
//	@JsonIgnore
//	public List<Vedio> getVedios() {
//		return vedios;
//	}
//
//	public void setVedios(List<Vedio> vedios) {
//		this.vedios = vedios;
//	}

	public String getEditionName() {
		return editionName;
	}

	public void setEditionName(String editionName) {
		this.editionName = editionName;
	}

	public String getEdtionIds() {
		return edtionIds;
	}

	public void setEdtionIds(String edtionIds) {
		this.edtionIds = edtionIds;
	}
	@JsonIgnore
	public List<Integer> getEdtionIdList() {
		return edtionIdList;
	}

	public void setEdtionIdList(List<Integer> edtionIdList) {
		this.edtionIdList = edtionIdList;
	}
	@JsonIgnore
	public List<KPointEdition> getkPointEditionList() {
		return kPointEditionList;
	}

	public void setkPointEditionList(List<KPointEdition> kPointEditionList) {
		this.kPointEditionList = kPointEditionList;
	}
	@JsonIgnore
	public List<KnowledgePoint> getRelationList() {
		return relationList;
	}

	public void setRelationList(List<KnowledgePoint> relationList) {
		this.relationList = relationList;
	}
//	@JsonIgnore
//	public List<KPointSummary> getSummaryList() {
//		return summaryList;
//	}
//
//	public void setSummaryList(List<KPointSummary> summaryList) {
//		this.summaryList = summaryList;
//	}
	@JsonIgnore
	public List<Edition> getEditionList() {
		return editionList;
	}

	public void setEditionList(List<Edition> editionList) {
		this.editionList = editionList;
	}

	public boolean isNested() {
		return isNested;
	}

	public void setNested(boolean isNested) {
		this.isNested = isNested;
	}
	
	@JsonIgnore
	public List<KPointLabel> getkPointLabels() {
		return kPointLabels;
	}

	public void setkPointLabels(List<KPointLabel> kPointLabels) {
		this.kPointLabels = kPointLabels;
	}

	public String getRelation() {
		return relation;
	}

	public void setRelation(String relation) {
		this.relation = relation;
	}
	
	public String getRelationId() {
		return relationId;
	}

	public void setRelationId(String relationId) {
		this.relationId = relationId;
	}

	public int getGradeId() {
		return gradeId;
	}

	public void setGradeId(int gradeId) {
		this.gradeId = gradeId;
	}

	public int getTermId() {
		return termId;
	}

	public void setTermId(int termId) {
		this.termId = termId;
	}

    @JsonIgnore
	public TextbookKpoint getTextbookKpoint() {
		return textbookKpoint;
	}

	public void setTextbookKpoint(TextbookKpoint textbookKpoint) {
		this.textbookKpoint = textbookKpoint;
	}
	


	public String getGradeTerm() {
		return gradeTerm;
	}

	public void setGradeTerm(String gradeTerm) {
		this.gradeTerm = gradeTerm;
	}

	public int getColumnId() {
		return columnId;
	}

	public void setColumnId(int columnId) {
		this.columnId = columnId;
	}

	public String getColumnNo() {
		return columnNo;
	}

	public void setColumnNo(String columnNo) {
		this.columnNo = columnNo;
	}

	public String getColumnName() {
		return columnName;
	}

	public void setColumnName(String columnName) {
		this.columnName = columnName;
	}

	public String getKeyword() {
		return keyword;
	}

	public void setKeyword(String keyword) {
		this.keyword = keyword;
	}

	public int getContentType() {
		return contentType;
	}

	public void setContentType(int contentType) {
		this.contentType = contentType;
	}

	public int getEditionId() {
		return editionId;
	}

	public void setEditionId(int editionId) {
		this.editionId = editionId;
	}
	@JsonIgnore
//	public List<KPointFile> getkPointFiles() {
//		return kPointFiles;
//	}

//	public void setkPointFiles(List<KPointFile> kPointFiles) {
//		this.kPointFiles = kPointFiles;
//	}

	public int getFileCount() {
		return fileCount;
	}

	public void setFileCount(int fileCount) {
		this.fileCount = fileCount;
	}
//    @JsonIgnore
//	public List<KPointQuestion> getkPointQuestionlist() {
//		return kPointQuestionlist;
//	}
//
//	public void setkPointQuestionlist(List<KPointQuestion> kPointQuestionlist) {
//		this.kPointQuestionlist = kPointQuestionlist;
//	}

	public String getLabels() {
		return labels;
	}

	public void setLabels(String labels) {
		this.labels = labels;
	}

	public int getNodeType() {
		return nodeType;
	}

	public void setNodeType(int nodeType) {
		this.nodeType = nodeType;
	}

	public String getSummaryPoints() {
		return summaryPoints;
	}

	public void setSummaryPoints(String summaryPoints) {
		this.summaryPoints = summaryPoints;
	}

	public String getCommonQTypes() {
		return commonQTypes;
	}

	public void setCommonQTypes(String commonQTypes) {
		this.commonQTypes = commonQTypes;
	}

	public String getFallibilitys() {
		return fallibilitys;
	}

	public void setFallibilitys(String fallibilitys) {
		this.fallibilitys = fallibilitys;
	}

	public String getSyllabusDemand() {
		return syllabusDemand;
	}

	public void setSyllabusDemand(String syllabusDemand) {
		this.syllabusDemand = syllabusDemand;
	}

	public List<KPointRelationship> getRelationshipList() {
		return relationshipList;
	}

	public void setRelationshipList(List<KPointRelationship> relationshipList) {
		this.relationshipList = relationshipList;
	}

	public String getPrevKPoint() {
		return prevKPoint;
	}

	public void setPrevKPoint(String prevKPoint) {
		this.prevKPoint = prevKPoint;
	}

	public String getPrevKPointId() {
		return prevKPointId;
	}

	public void setPrevKPointId(String prevKPointId) {
		this.prevKPointId = prevKPointId;
	}

	public String getNextKPoint() {
		return nextKPoint;
	}

	public void setNextKPoint(String nextKPoint) {
		this.nextKPoint = nextKPoint;
	}

	public String getNextKPointId() {
		return nextKPointId;
	}

	public void setNextKPointId(String nextKPointId) {
		this.nextKPointId = nextKPointId;
	}

	/**
	 * @return the kpointstat
	 */
//	public KpointStat getKpointstat() {
//		return kpointstat;
//	}

	/**
	 * @param kpointstat the kpointstat to set
	 */
//	public void setKpointstat(KpointStat kpointstat) {
//		this.kpointstat = kpointstat;
//	}

	/**
	 * @return the mediaType
	 */
	public Integer getMediaType() {
		return mediaType;
	}

	/**
	 * @param mediaType the mediaType to set
	 */
	public void setMediaType(Integer mediaType) {
		this.mediaType = mediaType;
	}

	public String getSummary() {
		return summary;
	}

	public void setSummary(String summary) {
		this.summary = summary;
	}

	public long getSummaryId() {
		return summaryId;
	}

	public void setSummaryId(long summaryId) {
		this.summaryId = summaryId;
	}
	
	
}
